//The vector 2d class.
#ifndef VEC2D_H
#define VEC2D_H

#include "types.h"

namespace ePhys {

	class vec2d
	{
	public:
		vec2d(void);
		vec2d(f32 _x, f32 _y);
		vec2d(vec2d *o);

		~vec2d(void);

		void set(vec2d &o) { x = o.x; y = o.y; }

		inline vec2d cross() { return vec2d(y, -x); }
		inline f32 dot(vec2d v) { return (x*v.x) + (y*v.y); }

		vec2d operator-(vec2d v) { return vec2d(x -v.x, y - v.y); }
		vec2d operator+(vec2d v) { return vec2d(x +v.x, y + v.y); }
		vec2d operator*(vec2d v) { return vec2d(x *v.x, y * v.y); }

		f32 distTo(vec2d &p);

		f32 x, y;
	};

}

#endif
